<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        // 词法作用域 区分于 块级作用域
        // ES6 之前是没有 块级作用域
        // 作用域： 定义的 变量 方法 在 代码中所能使用的区域
        // 词法作用域使用 规则 是 JavaScript 预解析规则

        /* 代码块之间的 作用域 => 块级作用域
            {
                代码块
            }
            if (a) {
                代码块
            }
    
            for () {
                代码块
            }
        */

        // 现在 词法作用域 只有 全局作用域 和 局部作用域（函数作用域）

        function foo() {
            var num = 10;

            function fn() {
                console.log(num); //10
                function fn1() {
                    console.log(num); //10
                }
                fn1()
            }
            fn()
        }
        foo();
    // 作用域链，

    </script>
</body>

</html>